/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.appspot.ittrick.drive.trick.controller;

import com.appspot.ittrick.drive.trick.Constants;
import com.appspot.ittrick.drive.trick.DriveTrick;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.Toggle;
import javafx.scene.control.ToggleGroup;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;

/**
 *
 * @author takahara
 */
public class AddGoogleNewFileController extends BorderPane implements Initializable {
    
    @FXML
    public ToggleGroup fileTypesGroup;
    @FXML
    private RadioButton docsRadioButton;
    @FXML
    private RadioButton presentationsRadioButton;
    @FXML
    private RadioButton spreadsheetsRadioButton;
    @FXML
    private RadioButton formsRadioButton;
    @FXML
    private RadioButton drawingsRadioButton;
    @FXML
    private RadioButton folderRadioButton;
    @FXML
    private ImageView fileImageView;
    @FXML
    private Label fileExplanationLabel;
    @FXML
    public Button createButton;
    
    /**
     * コンストラクタ
     */
    public AddGoogleNewFileController() {
        loadFXML();
    }
    
    /**
     * 初期化メソッド
     */
    private void loadFXML() {
        // ---------------------------------------------------
        // FXMLのロードと設定
        // ---------------------------------------------------
        FXMLLoader fxmlLoader = new FXMLLoader(DriveTrick.class.getResource("fxml/add_google_new_file.fxml"));
        fxmlLoader.setRoot(this);
        // 自分自身をコントロールとして設定
        fxmlLoader.setController(this);
        try {
            fxmlLoader.load();
        } catch (IOException exception) {
            throw new RuntimeException(exception);
        }
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        docsRadioButton.setUserData(Constants.GOOGLE_FILE_TYPES_ENUM.docs);
        presentationsRadioButton.setUserData(Constants.GOOGLE_FILE_TYPES_ENUM.presentations);
        spreadsheetsRadioButton.setUserData(Constants.GOOGLE_FILE_TYPES_ENUM.spreadsheets);
        formsRadioButton.setUserData(Constants.GOOGLE_FILE_TYPES_ENUM.forms);
        drawingsRadioButton.setUserData(Constants.GOOGLE_FILE_TYPES_ENUM.drawings);
        folderRadioButton.setUserData(Constants.GOOGLE_FILE_TYPES_ENUM.folder);
        
        final Image docsImage = new Image(DriveTrick.class.getResourceAsStream("images/google_files/create-docs.png"));
        final Image presentationsImage = new Image(DriveTrick.class.getResourceAsStream("images/google_files/create-presentations.png"));
        final Image spreadsheetsImage = new Image(DriveTrick.class.getResourceAsStream("images/google_files/create-spreadsheets.png"));
        final Image formsImage = new Image(DriveTrick.class.getResourceAsStream("images/google_files/create-forms.jpg"));
        final Image drawingsImage = new Image(DriveTrick.class.getResourceAsStream("images/google_files/create-drawings.jpg"));
//        Image folderImage = new Image(DriveTrick.class.getResourceAsStream("images/google_files/create-presentations.png"));
        
        fileTypesGroup.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
            @Override
            public void changed(ObservableValue<? extends Toggle> ov, Toggle t, Toggle t1) {
                 if (fileTypesGroup.getSelectedToggle() != null) {
                     
                     if(fileTypesGroup.getSelectedToggle().getUserData() == Constants.GOOGLE_FILE_TYPES_ENUM.docs) {
                         fileImageView.setImage(docsImage);
                         fileExplanationLabel.setText("ドキュメントを使用すると、すべての情報を 1 ページに保存して、全員で利用することができます。買い物リストを共有して夕食の材料を追加したり、会議の直前にロビーで資料の最終仕上げをしたりできます。");
                         
                     }else if(fileTypesGroup.getSelectedToggle().getUserData() == Constants.GOOGLE_FILE_TYPES_ENUM.presentations) {
                         fileImageView.setImage(presentationsImage);
                         fileExplanationLabel.setText("プレゼンテーションは 6 枚のスライドでも、600 枚ものスライドでも快適に作成できます。魅力的なプレゼンテーションを作成するのに必要なあらゆる機能が備えられているだけでなく、[保存] をクリックしなくても自動的に保存されます。 ");
                         
                     }else if(fileTypesGroup.getSelectedToggle().getUserData() == Constants.GOOGLE_FILE_TYPES_ENUM.spreadsheets) {
                         fileImageView.setImage(spreadsheetsImage);
                         fileExplanationLabel.setText("スプレッドシートは単なる列と行の集まりではありません。健康管理プランの進捗状況を記録したり、チームの会計に利用したり、試合のスコアを管理したりできます。");
                         
                     }else if(fileTypesGroup.getSelectedToggle().getUserData() == Constants.GOOGLE_FILE_TYPES_ENUM.forms) {
                         fileImageView.setImage(formsImage);
                         fileExplanationLabel.setText("シンプルなオンライン フォームでアンケートを行ったり、チーム名簿を手軽に作成したりできます。結果はスプレッドシートに整理されます。");
                         
                     }else if(fileTypesGroup.getSelectedToggle().getUserData() == Constants.GOOGLE_FILE_TYPES_ENUM.drawings) {
                         fileImageView.setImage(drawingsImage);
                         fileExplanationLabel.setText("簡単に作成できるグラフや図を利用して、表現豊かな文書、プレゼンテーション、ウェブサイトを作成できます。");
                         
                     }else if(fileTypesGroup.getSelectedToggle().getUserData() == Constants.GOOGLE_FILE_TYPES_ENUM.folder) {
                         fileImageView.setImage(null);
                         fileExplanationLabel.setText("フォルダを使ってファイルを整理することができます。");
                     }
                 }
            }
        });
    }
    
    @FXML
    protected void cancelAction() {
        DriveTrick.getInstance().closePopStage();
    }

}
